#ifndef FILE_Drawable_HPP
#define FILE_Drawable_HPP

#include <boost/function.hpp>
#include <boost/variant.hpp>

#include <SFML/Graphics.hpp>

#include "AnimatedSprite.hpp"

namespace se{
namespace Graphics{
class AnimatedSprite;

struct Drawable{
	template<typename T> Drawable(
			boost::function<void(sf::RenderTarget&,Drawable&)>& f,T& d):
				renderFunction(f),
				data(d){}
	boost::function<void(sf::RenderTarget&,Drawable&)>& renderFunction;
	boost::variant<AnimatedSpritePOD> data;
};
}}// </se::Graphics>

#endif // FILE_Drawable_HPP
